iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 13
0
Software Development

Kotlin 2018連續開發30天系列 第 13

Kotlin 2018連續開發30天 如何做到開機自動啟用APP

  • 分享至 

  • xImage
  •  

所需方法
1.service
2.brocastreciver
3.BOOT_COMPLETED

一 建立在系統背後執行的service
package com.example.kunlinlee.reboot

import android.app.Service
import android.content.Intent
import android.os.IBinder

class bootservice: Service() {
override fun onBind(intent: Intent?): IBinder? {
return null
}
}

這邊要放置的是service要做的工作

二 建立brocastreciver 在APP端收到訊息的工作
package com.example.kunlinlee.reboot

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent

class Reciver:BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if(intent?.action.equals(Intent.ACTION_BOOT_COMPLETED)){
val serviceIntent = Intent(context,bootservice::class.java)
context?.startService(serviceIntent)
}
val activityIntent = Intent(context,MainActivity::class.java)
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
context?.startActivity(activityIntent)
}

}
利用intent.getAction來接收訊息訊息為Intent.ACTION_BOOT_COMPLETED 時
利用intent來建立service

三 建立權限

註測reciver

     <receiver android:name=".Reciver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>
    

註冊service

完成

結論

很簡單 但要注意一點 開機後並不會馬上執行 android有自己的開機程序 所有完成後才會開始執行動作


上一篇
Kotlin 2018連續開發30天 第三方網路連線庫-volley
下一篇
Kotlin 2018連續開發30天 如何做到Activity固定橫向
系列文
Kotlin 2018連續開發30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言